The invention generally relates to a programmable device and, more particularly, to an apparatus and method for providing a back out routine for a failed programmable hardware update in the programmable device and will be described with particular reference thereto. However, it is to be appreciated that the invention is also amenable to other applications.
A field programmable gate array (FPGA) is a type of integrated circuit consisting of an array of programmable logic blocks interconnected by programmable routing resources and programmable I/O cells. Programming of these logic blocks, routing resources and I/O cells is selectively completed to make the necessary interconnections that establish a configuration thereof to provide desired system operation/function for a particular circuit application.
FPGAs and similar programmable devices permit software updates (SUs) for various systems to include hardware updates. When an FPGA that is integral to system communications is affected by one such hardware update, completion of installation and/or testing of the SU may be inhibited if, during the hardware update, a program load failure is experienced or if the FPGA hardware update fails.
For example, the use of FPGAs in the design of an optical facility interface (OFI) of an optical interface unit (OIU) in a telecommunication switch makes it easy to update the OFI hardware in the field by including the FPGA software image as part of the OFI's resident software (RSW) image. The OFI-IP (Internet Protocol) typically takes advantage of three FPGAs. The reset and communication controls to the OFI are carried over one such FPGA—namely, the Time-Division Multiplexer (TDM) FPGA. Thus, a program load failure or a “bad” software update associated with the TDM FPGA could potentially leave the OFI in a state from which it cannot recover without manual intervention.
There is a particular need for a back out provision when a planned programmable hardware upgrade, such as the TDM FPGA in the OFI, fails to load properly or leaves the system (e.g., telecommunication switch) or device (e.g., OFI) in a state requiring manual intervention.